Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Теплоенергетичний факультет
Кафедра автоматизації проектування енергетичних процесів і систем
РОЗРАХУНКОВО-ГРАФІЧНА РОБОТА
з дисципліни «Програмування алгоритмічних структур»
Тема «Програмування базових алгоритмів»
Варіант № 25
Мета роботи:
Набуття практичних навичок розробки розгалужених та циклічних алгоритмів при створюванні програмних проектів для розв’язання практичних завдань.
Завдання на розрахунково-графічну роботу (РГР).
1.Розробити алгоритми і написати програми мовою Java і ззастосуванням операторів циклів for, while, do while для розв’язання завдань, поданих в додатках1,2 відповідно до індивідуального варіанта. Варіанто брати за списком групи.
2.Розробити програмний проект в середовищі IntellijIDEA для реалізації написаних програм. Перевірити результати обчислень альтернативними розрахунками(наприклад, Excel, калькулятор, тощо).3.Оформити РГР та вчасно надіслати викладачу на перевірку файл РГР та файл програми.
Так як варіант №25, виконуємо задачі під номером 25
Завдання №1
/
Завдання №2
/
Короткі описи рішення завдань:
Опис вирішення завдання №1
Створено в Java клас RgrTr15Shep .
В цьому класі розміщено методи main, task11, ,task12, ,task13,task2.
Метод Main є головним і виконується першим, тому у ньому створюємо масив для завдання №1. Значення вводимо шляхом присвоєння.
Тут відбувається виклик методу task11
Метод task11: Сюди передається початкова розширена матриця системи лінійних алгебраїчних рівнянь (СЛАР) та повертається трикутникова матриця. В даному методі організований прямий хід методу Гауса для розв’язання СЛАР. Використано два цикли for і while.
Далі, у Main викликаємо метод task12
Метод task12: Сюди передається трикутникова матриця та повертається вектор результатів розв’язання СЛАР. В даному методі організований зворотний хід методу Гауса для розв’язання СЛАР. Використано два цикли for і while
Далі, у Main викликаємо метод task13 три рази
Метод task13: цей метод по-черзі передаємо початкову матрицю, трикутникову матрицю, вектор результатів для виводу в консоль. Вивід організовано із відповідними заголовками: «Початкова матриця:», «Трикутникова матриця:» і «Вектор результатів:». Метод зроблено універсальним шляхом перевантаження, для виводу матриць і вектору. Виведення організовано за допомогою метода System.out.printf форматованого виводу значень. Для дробових чисел – не більше 3 знаків після коми. Цілі числа виведено без коми та нулів після коми. (Зауваження: з невідомих мені причин деякі цілі числа поводять себе ніби вони дробові, і виводяться з комою і нулями після неї)
Далі, починається розв’язання завдання №2. Щоб код був компактним, використано цикл while.
Відбувається введення чисел (за допомогою методів класу Scanner), і подальше їх присвоєння у масив. Потім викликається метод task2. (Зауваження: число 0 зарезервоване для того, щоб переходити далі)
Метод task2: у цей метод передаються масив чисел, що ввів користувач і далі відбувається їх обробка. Числа що нам підходять, присвоюються новому масиву. Повертається новий масив.
За один цикл відбувається присвоєння значень, виклик методу і вивід результатів.
Блок-схема для завдання №2
/ / /
/
Копія коду на білому фоні
package com.company;
import static java.lang.Math.*;
import java.util.Scanner;
public class RgrTr15Shep {
public static void main(String[] args) {
double[][] data1={{-2,-6,1,-4,-6,-20},
{-6,-9,9,6,1,-79.3},
{8,-7,10,5,0,-52.4},
{8,6,-5,-6,-3,73.2},
{-6,-10,7,-9,5,34.9}};
double[][] triangle= task11(data1);
double[] vector= task12(triangle);
//Виведення початкової матриці
System.out.println("\tПочаткова матриця");
task13(data1);
System.out.println("\tТрикутникова матриця");
task13(triangle);
System.out.println("\tВектор результатів");
// Вив...